#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


# 在Python3中如果一个类没有写任何继承类的名称，则会默认继承自object类
class Singleton:
    _instance = None  # 类属性

    def __init__(self):
        print('init')

    # cls指向的是类对象，self指向的是实例对象
    # __new__方法主要是创建这个类的实例
    def __new__(cls, *args, **kwargs):
        print('new')
        if cls._instance is None:
            # object是Python3中默认继承的一个基类
            cls._instance = object.__new__(cls)
        return cls._instance


s_1 = Singleton()
s_2 = Singleton()

print(id(s_1))
print(id(s_2))


"""
object是所有类的基类
    __init__
    __str__
    __new__
    都是object提供的
"""